package com.dcd.mapper;

import com.dcd.pojo.Car_series;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface Car_seriesMapper {

    /**
     * 查询历史浏览车系
     *
     * @param car_series_ids 历史浏览车系id数组
     * @return
     */
    List<Car_series> select_history_browsing_car_series(String[] car_series_ids);

    /**
     * 查询指定用户关注车系
     *
     * @param user_id 用户id
     * @return
     */
    List<Car_series> select_my_follow_car_series(int user_id);

    /**
     * 选车
     *
     * @param conditions 多个条件
     * @return
     */
    List<Car_series> vehicle_selection_by_conditions(Map<String, String> conditions);

    /**
     * 查询指定条件车图
     *
     * @param conditions 多个条件
     * @return
     */
    List<Car_series> select_all_series_images_by_conditions(Map<String, String> conditions);

    /**
     * 查询指定车系信息
     *
     * @param car_series_id 车系id
     * @return
     */
    Car_series select_car_series_by_id(int car_series_id);

    /**
     * 查询首页头部车系
     *
     * @param level_id            根据级别查询
     * @param different_countries 根据国别查询
     * @param price1              //价格1
     * @param price2              //价格2  区间
     * @return
     */
    List<Car_series> select_index_heand_levei_series(@Param("level_id") Integer level_id, @Param("different_countries") Integer different_countries, @Param("price1") Integer price1, @Param("price2") Integer price2);

    /**
     * 查询同级车排行--5辆
     *
     * @param conditions_type            条件类型（销量/热门度/懂车分）
     * @param car_series_id              车系id
     * @param car_series_car_level_fk_id 该车系级别id
     * @return
     */
    List<Car_series> select_same_level_ranking(@Param("conditions_type") String conditions_type, @Param("car_series_id") int car_series_id, @Param("car_series_car_level_fk_id") int car_series_car_level_fk_id);

    /**
     * 查询首页新车
     * 返回 名称 时间 最低价格 最高价格 图片 资讯id 资讯标题
     *
     * @return
     */
    List<Car_series> select_index_new_series();

    /**
     * 查询车系名称 品牌名称
     * @param car_series_id 车系id
     * @return
     */
    Car_series select_series_id_brand(@Param("car_series_id") Integer car_series_id);

    /**
     * 排行榜分页查询所有(根据销量排行)
     *
     * @return
     * 排行榜分页查询所有(根据销量排行)并加入条件
     * @param brand_id   品牌id
     * @param car_level_id  等级id
     * @param newtime  销售日期(202202)
     * @param min_price  最低金额
     * @param max_price  最高金额 区间
     * @return   map返回数据
     */
    List<Car_series> select_sales_all_series(@Param("brand_id") Integer brand_id,@Param("car_level_id") Integer car_level_id,@Param("newtime") Integer newtime,@Param("min_price") Integer min_price,@Param("max_price") Integer max_price);


    /**
     * 查询车系视频推荐排行榜
     *
     * @return
     */
    List<Car_series> select_series_video_recommend_ranking();

    /**
     * 热销榜(排行榜)
     * @return
     */
    List<Car_series> select_hot_ranking();

    /**
     * 降价榜(排行榜)
     * @return
     */
    List<Car_series> select_cut_price_ranking();


    /**
     * 查询指定节目下所有视频的所有车系
     *
     * @param program_id
     * @return
     */
    List<Car_series> select_appoint_program_all_car_series(int program_id);

    /**
     * 查询所有车系名称在搜索文本框中显示
     * @return
     */
    List<Car_series> select_all_car_series_name();

    /**
     * 查询相关车系
     * 返回车系id  平均分  产商指导价  最高降幅  品牌名称 品牌图片
     * @param car_series_id
     * @return
     */
    List<Car_series> select_interrelated_series(@Param("car_series_id") int car_series_id);
}

